1. Field of the Invention
The present disclosure relates generally to packet network media access controllers and physical layer devices, and more particularly to devices and methods for aggregating multiple physical layer devices into a logical channel.
2. Description of Related Art
In a packet network device, the physical layer (PHY) is the layer that actually formats/codes packet data for transmission across a physical medium, signals the data on that medium, senses received data from the medium, and interprets the sensed data to remove the physical layer formatting/coding. The physical medium may be an electrical cable, an optical fiber, or electromagnetic radio frequency propagation (i.e., wireless). For electrical cabling, several PHYs may share a common cable, with each PHY assigned to a dedicated wire pair or pairs within the cable. For optical fiber, several PHYs may send and receive data on the same fiber using wavelength division multiplexing (WDM), wherein each PHY modulates a laser at a different optical wavelength from the other PHYs, and the receiver incorporates optical demultiplexers and/or filters to separate the different wavelengths and supply them to different PHYs. Other packet network device peers may be linked by multiple PHYs, without all PHYs sharing a common cable or optical fiber.
When two packet network devices are connected by multiple physical links, whether on a single cable/fiber or multiple cables/fibers, it is sometimes advantageous to logically aggregate the multiple physical links, such that together the multiple physical links act as a single, higher-rate link. One method of accomplishing link aggregation has been promulgated by the Institute of Electrical and Electronic Engineers, e.g., in the IEEE 802.3-2005 standard, Clause 43 and Annexes 43A-C, incorporated herein by reference. This method parses transmit packets to, and merges receive packets from, multiple Media Access Controllers (MACs), each of which communicates with a corresponding PHY and physical channel. This method is useful with any MAC/PHY, but requires the link layer packet aggregation to implement multiplex and demultiplex buffers, link aggregation control protocol state machines and packet generators/interpreters, and sequencing logic to inspect packets and distribute them to the MACs in such a way that packets in the same stream will not be reordered (although the overall order of the packets may change from one end of the logical channel to the other, the order within each sender/receiver pair is preserved).
As an alternative to link-layer aggregation, it is also possible to aggregate links at the physical layer, by structuring a system so that a single MAC serves multiple PHYs. One such aggregation method is described in the IEEE 802.3-2005 standard, Clause 61, incorporated herein by reference. This method allows up to 32 Physical Medium Entities (PMEs) to interface with a PME Aggregation Function (PAF), where each entity is a 10 megabit/second (Mbit) or 2 Mbit PHY. The PAF, in turn, interfaces across a Media Independent Interface with a 100 Mbit MAC. The PAF fragments packets received from the MAC as it sees fit (within given restrictions) and distributes the fragments among the PMEs it controls. Each fragment begins with a fragment header containing a fragment sequence number, and start and end bits that indicate whether this is the first fragment of a packet, last fragment of a packet, or both. Data from the packet follows the fragment header, and a fragment checksum is calculated and appended to allow error detection.
A related, although slightly different, physical layer aggregation has been proposed for aggregating multiple 10 gigabit/second (Gbit) PHYs to a MAC running at a faster rate. This approach, termed Aggregation at the Physical Layer (APL), is illustrated in FIGS. 1 and 2. Whereas the Clause 61 approach operates with any 100 Mbit MAC and standard MAC/PHY interfaces using specialized PHY functionality, the APL approach uses specialized MAC functionality and standard MAC/PHY interfaces and PHYs. APL assumes that all underlying PHYs operate at the same data rate, while Clause 61 does not make this restriction.
FIG. 1 shows a functional block diagram of the APL approach. The MAC sublayer connects to the APL through a reconciliation sublayer (which maps signals from the APL to primitives understood by the MAC, and vice-versa). The APL fragments the packets and parses the fragments onto multiple 10 Gbit Media Independent Interfaces (XGMIIs).
Each XGMII connects to one of N 10 GBit PHYs, specifically to the Physical Coding Sublayer (PCS) of the PHYs, which in FIG. 1 are labeled PCS1, PCS2, . . . , PCSN. The PCS provides a uniform interface to the APL, provides coding/decoding needed for the physical channel, determines when the PHY is ready for use, etc.
Each PCS connects to a Physical Medium Attachment (PMA) sublayer, which in FIG. 1 are labeled PMA1, PMA2, . . . PMAN. Each PMA sublayer provides a medium-independent interface for the PCS, allowing the PCS to support different physical media. The PMA serializes/deserializes data streams and recovers the clock from the received data stream, for instance.
Each PMA connects to a Physical Medium Dependent (PMD) sublayer, which in FIG. 1 are labeled PMD1, PMD2, . . . , PMDN. The PMD sublayer transmits the serialized bitstream from the PMA according to the physical layer signaling format defined for that type of PMA, and receives a serialized bitstream from the media as well.
Each PMD connects to the physical medium through a Media Dependent Interface (MDI). Depending on the media type, there may be one MDI and one media for each PMD, or multiple PMDs may share an MDI and the attached medium.
FIG. 2 illustrates the operation of the APL for packet data received from the MAC. In FIG. 2, the MAC outputs an interpacket gap (IPG) consisting of idle characters, followed by a packet PA, another IPG, and then another packet PB. The APL takes this input, ignores the first IPG, and begins fragmenting packet PA. In the FIG. 2 example, packet PA is fragmented into eight maximum-length fragments (fragments 1-8) and eight smaller fragments (fragments 9-16). The fragments are distributed to the PCS sublayers of N PHYs (in this example N is 8) in round-robin order for transmission. Packet PB is then fragmented by the same process for transmission.
Each fragment is constructed in a format that makes it appear to a PCS as a packet. An IPG is supplied to the PCS before each fragment, followed by a start character, a set of fragment overhead bytes, a fragment of data from the current packet, and a terminate character.
The fragment overhead consists of a sequence number, a start bit S, an end bit E, and a fragment checksum. The sequence number increments sequentially as the APL creates fragments, and eventually rolls over. The size of the sequence number is designed to allow for unambiguous fragment reordering at the receiver with expected skew between PHYs. The start bit S is set if the fragment is the first fragment of a packet. The end bit E is set if the fragment is the last fragment of a packet. The fragment checksum is used to detect errors in the fragment overhead (it is assumed that the data portion of each fragment is adequately protected from errors by the packet checksum).
In the embodiment shown in FIG. 2, APL selected a smaller fragment size for the last eight fragments to divide the packet more equally and avoid transmitting partially-filled fragments, since the goal is to keep the rate of fragment transmission the same on all PHYs.